@ Lec08-Factorial

@@@@@@@@@@@@@
@ Iteration @
@@@@@@@@@@@@@
fact:
	mov r1, #1
L1:
	cmp r0, #0
	beq DONE
	mul r2, r1, r0
	mov r1, r2
	sub r0, r0, #1
	b L1
DONE:
	mov r0, r1
	mov pc, lr

@@@@@@@@@@@@@
@ Recursion @
@@@@@@@@@@@@@
fact:
	sub sp, sp, #4
	str lr, [sp]
	cmp r0, #0
	beq BASE
	mov r1, r0
	sub r0, r0, #1
	bl fact
	mul r2, r1, r0
	mov r0, r2
	b DONE
BASE:
	mov r0, #1
DONE:
	ldr lr, [sp]
	add sp, sp, #4
	mov pc, lr